package com.erp.entity.purchase;

import com.erp.entity.goods.GoodsPriceStrategy;
import com.erp.entity.goods.MultipleUnit;
import com.erp.entity.goods.Unit;

import java.math.BigDecimal;
import java.util.List;

/**
 * @author :qinya
 * @PackageName:com.erp.entity.purchase
 * @ClassName: PurchaseReturnDetail
 * @Description: 购货退货单明细
 * @date : 2025/7/14,11:19
 */
public class PurchaseReturnDetail {

    private Integer purchaseReturnDetailId; // 退货单详情ID（主键）
    private String purchaseReturnCode;       // 退货单编码
    private String goodsCode;               // 商品编码
    private Integer quantity;               // 数量
    private Integer multipleUnitId;            // 多单位ID
    private BigDecimal purchasePrice;       // 采购单价（如 decimal 类型，保持精度）
    private Integer discountRate;           // 折扣率
    private Integer rate;                   // 税率
    private String remark;                  // 备注
    private Integer purchaseOrderDetailId;  // 关联采购单详情ID
    private Integer isGift;                 // 是否赠品（0：否，1：是）
    private Integer companyId;              // 公司ID
    private Integer singleUnitId;           // 单单位ID
    private String purchaseOrderCode;       //关联购货单编号

    // 冗余购货订单字段
    private Integer availableQuantity; // 如果是从购货单选的商品有最大数量限制

    // 冗余质检单字段
    private Integer qualityCheckId; // 质检单ID

    // 冗余商品字段
    private String goodsName; // 商品名称
    private String multipleUnitName; // 多单位名称
    private Integer basicUnitId; // 基本单位ID
    private String basicUnitName; // 基本单位名称
    private String singleUnitName; // 单单位名称
    private String goodsSpecification; // 商品规格
    private String brandName; // 商品品牌
    private String imgMainUrl; // 商品主图路径
    private String goodsRemark; // 商品备注
    private Integer basicQuantity; // 基本数量
    private List<MultipleUnit> multipleUnitList; // 多单位列表
    private Unit unit; // 单单位
    private List<GoodsPriceStrategy> goodsPriceStrategies; // 价格策略列表

    public Integer getPurchaseReturnDetailId() {
        return purchaseReturnDetailId;
    }

    public void setPurchaseReturnDetailId(Integer purchaseReturnDetailId) {
        this.purchaseReturnDetailId = purchaseReturnDetailId;
    }

    public String getPurchaseReturnCode() {
        return purchaseReturnCode;
    }

    public void setPurchaseReturnCode(String purchaseReturnCode) {
        this.purchaseReturnCode = purchaseReturnCode;
    }

    public String getGoodsCode() {
        return goodsCode;
    }

    public void setGoodsCode(String goodsCode) {
        this.goodsCode = goodsCode;
    }

    public Integer getQuantity() {
        return quantity;
    }

    public void setQuantity(Integer quantity) {
        this.quantity = quantity;
    }

    public BigDecimal getPurchasePrice() {
        return purchasePrice;
    }

    public void setPurchasePrice(BigDecimal purchasePrice) {
        this.purchasePrice = purchasePrice;
    }

    public Integer getDiscountRate() {
        return discountRate;
    }

    public void setDiscountRate(Integer discountRate) {
        this.discountRate = discountRate;
    }

    public Integer getRate() {
        return rate;
    }

    public void setRate(Integer rate) {
        this.rate = rate;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    public Integer getPurchaseOrderDetailId() {
        return purchaseOrderDetailId;
    }

    public void setPurchaseOrderDetailId(Integer purchaseOrderDetailId) {
        this.purchaseOrderDetailId = purchaseOrderDetailId;
    }

    public Integer getIsGift() {
        return isGift;
    }

    public void setIsGift(Integer isGift) {
        this.isGift = isGift;
    }

    public Integer getCompanyId() {
        return companyId;
    }

    public void setCompanyId(Integer companyId) {
        this.companyId = companyId;
    }

    public Integer getSingleUnitId() {
        return singleUnitId;
    }

    public void setSingleUnitId(Integer singleUnitId) {
        this.singleUnitId = singleUnitId;
    }

    public String getGoodsName() {
        return goodsName;
    }

    public void setGoodsName(String goodsName) {
        this.goodsName = goodsName;
    }

    public String getSingleUnitName() {
        return singleUnitName;
    }

    public void setSingleUnitName(String singleUnitName) {
        this.singleUnitName = singleUnitName;
    }

    public String getPurchaseOrderCode() {
        return purchaseOrderCode;
    }

    public void setPurchaseOrderCode(String purchaseOrderCode) {
        this.purchaseOrderCode = purchaseOrderCode;
    }

    public Integer getMultipleUnitId() {
        return multipleUnitId;
    }

    public void setMultipleUnitId(Integer multipleUnitId) {
        this.multipleUnitId = multipleUnitId;
    }

    public Integer getAvailableQuantity() {
        return availableQuantity;
    }

    public void setAvailableQuantity(Integer availableQuantity) {
        this.availableQuantity = availableQuantity;
    }

    public String getMultipleUnitName() {
        return multipleUnitName;
    }

    public void setMultipleUnitName(String multipleUnitName) {
        this.multipleUnitName = multipleUnitName;
    }

    public Integer getBasicUnitId() {
        return basicUnitId;
    }

    public void setBasicUnitId(Integer basicUnitId) {
        this.basicUnitId = basicUnitId;
    }

    public String getBasicUnitName() {
        return basicUnitName;
    }

    public void setBasicUnitName(String basicUnitName) {
        this.basicUnitName = basicUnitName;
    }

    public String getGoodsSpecification() {
        return goodsSpecification;
    }

    public void setGoodsSpecification(String goodsSpecification) {
        this.goodsSpecification = goodsSpecification;
    }

    public String getBrandName() {
        return brandName;
    }

    public void setBrandName(String brandName) {
        this.brandName = brandName;
    }

    public String getImgMainUrl() {
        return imgMainUrl;
    }

    public void setImgMainUrl(String imgMainUrl) {
        this.imgMainUrl = imgMainUrl;
    }

    public String getGoodsRemark() {
        return goodsRemark;
    }

    public void setGoodsRemark(String goodsRemark) {
        this.goodsRemark = goodsRemark;
    }

    public Integer getBasicQuantity() {
        return basicQuantity;
    }

    public void setBasicQuantity(Integer basicQuantity) {
        this.basicQuantity = basicQuantity;
    }

    public List<MultipleUnit> getMultipleUnitList() {
        return multipleUnitList;
    }

    public void setMultipleUnitList(List<MultipleUnit> multipleUnitList) {
        this.multipleUnitList = multipleUnitList;
    }

    public Unit getUnit() {
        return unit;
    }

    public void setUnit(Unit unit) {
        this.unit = unit;
    }

    public List<GoodsPriceStrategy> getGoodsPriceStrategies() {
        return goodsPriceStrategies;
    }

    public void setGoodsPriceStrategies(List<GoodsPriceStrategy> goodsPriceStrategies) {
        this.goodsPriceStrategies = goodsPriceStrategies;
    }

    public Integer getQualityCheckId() {
        return qualityCheckId;
    }

    public void setQualityCheckId(Integer qualityCheckId) {
        this.qualityCheckId = qualityCheckId;
    }
}
